//
// Created by LiuYou on 2021/7/24.
//

#ifndef MODERNCPP_FOLDER_HPP
#define MODERNCPP_FOLDER_HPP


#include <set>

namespace Demo {
    class Message;

    class Folder {
    public:

        void save(Message& message);

        void remove(Message& message);

        void debugPrint();

    public:
        Folder();

        virtual ~Folder();

        Folder(const Folder& rhs);

        Folder& operator=(const Folder& rhs);

    private:
        void addToMessages(const Folder& folder);

        void removeFromMessages();

        void addMsg(Message* message);

        void remMsg(Message* message);

    private:
        std::set<Message*> messages;

    };

}


#endif //MODERNCPP_FOLDER_HPP
